package com.light.sys.query;

import java.io.Serializable;
import java.util.Date;

import com.light.common.base.BaseQuery;
import lombok.ToString;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.light.sys.domain.SysMenuDO;


/**
 * @author yhr
 * @Description: 父菜单ID，一级菜单为0
 * @Version V1.0
 * @date
 */
@Data
@ToString
public class SysMenuQuery extends BaseQuery {
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @ApiModelProperty("")
    private Long menuId;
    /**
     * 父菜单ID，一级菜单为0
     */
    @ApiModelProperty("父菜单ID，一级菜单为0")
    private Long parentId;
    /**
     * 菜单名称
     */
    @ApiModelProperty("菜单名称")
    private String name;
    /**
     * 菜单URL
     */
    @ApiModelProperty("菜单URL")
    private String url;
    /**
     * 授权(多个用逗号分隔，如：user:list,user:create)
     */
    @ApiModelProperty("授权(多个用逗号分隔，如：user:list,user:create)")
    private String perms;
    /**
     * 类型   0：目录   1：菜单   2：按钮
     */
    @ApiModelProperty("类型   0：目录   1：菜单   2：按钮")
    private Integer type;
    /**
     * 菜单图标
     */
    @ApiModelProperty("菜单图标")
    private String icon;
    /**
     * 排序
     */
    @ApiModelProperty("排序")
    private Integer orderNum;
    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remark;
    /**
     * 状态：-1 已删除 0 正常
     */
    @ApiModelProperty("状态：-1 已删除 0 正常")
    private Integer status;
    /**
     * 创建人ID
     */
    @ApiModelProperty("创建人ID")
    private Long createUser;
    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private Date createTime;
    /**
     * 修改时间
     */
    @ApiModelProperty("修改时间")
    private Date updateTime;

    @Override
    public QueryWrapper<SysMenuDO> createQueryWrapper() {
        QueryWrapper<SysMenuDO> queryWrapper = new QueryWrapper<>();

        if (this.menuId != null) {
            queryWrapper.eq("menu_id", this.menuId);
        }
        if (this.parentId != null) {
            queryWrapper.eq("parent_id", this.parentId);
        }
        if (this.name != null) {
            queryWrapper.eq("name", this.name);
        }
        if (this.url != null) {
            queryWrapper.eq("url", this.url);
        }
        if (this.perms != null) {
            queryWrapper.eq("perms", this.perms);
        }
        if (this.type != null) {
            queryWrapper.eq("type", this.type);
        }
        if (this.icon != null) {
            queryWrapper.eq("icon", this.icon);
        }
        if (this.orderNum != null) {
            queryWrapper.eq("order_num", this.orderNum);
        }
        if (this.remark != null) {
            queryWrapper.eq("remark", this.remark);
        }
        if (this.status != null) {
            queryWrapper.eq("status", this.status);
        }
        if (this.createUser != null) {
            queryWrapper.eq("create_user", this.createUser);
        }
        if (this.createTime != null) {
            queryWrapper.eq("create_time", this.createTime);
        }
        if (this.updateTime != null) {
            queryWrapper.eq("update_time", this.updateTime);
        }

        return queryWrapper;
    }
}
